<?php

/**
 * Admin_model
 *  管理员管理模型
 */
class Admin_model extends CI_Model
{
    var $_table_name = 'admin';

    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 添加管理员
     * @param string $saname
     * @param string $passwd
     * @param string $realname
     */
    public function add_sa($saname, $passwd, $realname)
    {
        $sa = array(
            'username' => $saname,
            'passwd' => md5($passwd),
            'realname' => $realname,
            'createtime' => date('Y-m-d H:i:s'),
            'lastlog' => date('Y-m-d H:i:s')
        );
        $this->db->insert($this->_table_name, $sa);
    }

    /**
     * 获取管理员信息
     * @param string $saname 管理员用户名
     * @return object 管理员对象
     */
    public function get_by_saname($saname)
    {
        return $this->db->get_where($this->_table_name, array('username' => $saname));
    }

    /**
     * 修改管理员密码
     * @param string $saname 管理员用户名
     * @param string $newpasswd 新密码
     */
    public function change_passwd($saname, $newpasswd)
    {

        return $this->db->update($this->_table_name, array('passwd' => $newpasswd), array('username' => $saname));

    }

    /**
     * 删除管理员帐号
     * @param int $saname
     */
    public function del_sa($saname)
    {
        if ($this->get_by_saname($saname)) {
            $this->db->delete($this->_table_name, array('username' => $saname));
        }
    }

    /**
     * 用户登录信息校验
     * @param $username
     * @param $password
     * @return array
     */
    public function login($username, $password)
    {
        $arr_result = array('errorCode' => 0, 'msg' => '');
        $row = $this->get_name($username);

        if (!empty($row)) {
            if ($row['passwd'] == md5($password)) {
                $arr = array(
                    'admin_id' => $row['id'],
                    'admin_username' => $row['username'],
                    'admin_realname' => $row['realname'],
                    'admin_level' => $row['level']
                );

                $this->session->set_userdata($arr);
                // 修改最后登录时间
                $this->update_data(array('last_login_time' => time(), 'lastlogip' => $this->input->ip_address()), $row['id']);

            } else {
                $arr_result['errorCode'] = 2;
                $arr_result['msg'] = '密码错误';
            }
        } else {
            $arr_result['errorCode'] = 1;
            $arr_result['msg'] = '用户不存在';
        }

        return $arr_result;
    }

    /**
     * 注销管理员
     */

    public function logout()
    {
        if ($this->logged_in() === TRUE) {
            $this->session->sess_destroy();                //销毁所有session的数据
        }
    }

    /**
     * 测试管理员是否登录
     * @return bool
     */

    public function logged_in()
    {
        if ($this->session->userdata('admin_username')) {
            return TRUE;
        }
        return false;
    }

    /**
     *  用用户名查询一条数据
     * @param string $saname 管理员用户名
     * @return array
     */

    public function get_name($saname)
    {
        $this->db->select('*');
        $this->db->from($this->_table_name);
        $this->db->where('username', $saname);
        $query = $this->db->get();
        $row = $query->row_array();
        return $row;
    }

    /**
     *  修改用户数据
     */
    //更新数据

    public function update_data($data, $id)
    {
        $this->db->where('id', $id);
        $res = $this->db->update($this->_table_name, $data);
        if ($res) {
            return 1;
        } else {
            return 0;
        }
    }

}

